package net.kleinhenz.norabase.client.datasource;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;


import java.util.Map;

import net.kleinhenz.norabase.shared.SortOrientation;
import net.kleinhenz.norabase.shared.TextMatchStyle;
import net.kleinhenz.norabase.shared.model.Battlegroup;
import net.kleinhenz.norabase.shared.model.FetchResult;
import net.kleinhenz.norabase.shared.model.Rune;

@RemoteServiceRelativePath("battlegrouplistds")
public interface BattlegroupListDSService extends RemoteService {

	FetchResult<Battlegroup<Rune>> fetch(int start, int end, Map<String, SortOrientation> sortSpec, TextMatchStyle textMatchStyle, Map<String, Object> criteria, String accountId);
    
    public static class Util {
		private static BattlegroupListDSServiceAsync instance;
		public static BattlegroupListDSServiceAsync getInstance() {
			return (instance == null) ? (instance = GWT.create(BattlegroupListDSService.class)) : instance;
		}
	}

}
